MKL_0 = [2000 1600 2000 0 533.454 ;  2500 1600 2500 0 844.426 ;  3000 1600 3000 0 1192.6 ;  3500 1600 3500 0 1648.14 ;  4000 1600 4000 0 2133.45 ;  4500 1600 4500 0 2741.86 ;  5000 1600 5000 0 3331.43 ;  5500 1600 5500 0 4136.83 ;  6000 1600 6000 0 4816.6 ;  6500 1600 6500 0 5701.17 ;  7000 1600 7000 0 6665.68 ;  7500 1600 7500 0 7580.38 ;  8000 1600 8000 0 8487.26 ;  8500 1600 8500 0 9880.11 ;  9000 1600 9000 0 10719.2 ;  9500 1600 9500 0 12358 ;  10000 1600 10000 0 13282.1 ;  10500 1600 10500 0 15080.4 ;  11000 1600 11000 0 16080.1 ;  11500 1600 11500 0 18108.8 ;  12000 1600 12000 0 20079.9 ; ];

FAST424_26_257_1 = [ 2000 1600 2000 1 540.319 ;  2500 1600 2500 1 845.81 ;  3000 1600 3000 1 1184.39 ;  3500 1600 3500 1 1628.97 ;  4000 1600 4000 1 2037.93 ;  4500 1600 4500 1 2672.03 ;  5000 1600 5000 1 3246.88 ;  5500 1600 5500 1 3933.16 ;  6000 1600 6000 1 4524.44 ;  6500 1600 6500 1 5392.31 ;  7000 1600 7000 1 6206.14 ;  7500 1600 7500 1 7296.04 ;  8000 1600 8000 1 7952.98 ;  8500 1600 8500 1 9273.75 ;  9000 1600 9000 1 10167.4 ;  9500 1600 9500 1 11459.5 ;  10000 1600 10000 1 12429.3 ;  10500 1600 10500 1 14163.4 ;  11000 1600 11000 1 15125.1 ;  11500 1600 11500 1 16586.9 ;  12000 1600 12000 1 17461.5 ; ];
FAST424_26_257_2 = [ 2000 1600 2000 2 622.541 ;  2500 1600 2500 2 978.486 ;  3000 1600 3000 2 1368.41 ;  3500 1600 3500 2 1823.62 ;  4000 1600 4000 2 2191.83 ;  4500 1600 4500 2 2823.95 ;  5000 1600 5000 2 3294.9 ;  5500 1600 5500 2 4157.58 ;  6000 1600 6000 2 4658.77 ;  6500 1600 6500 2 5424.43 ;  7000 1600 7000 2 6335.53 ;  7500 1600 7500 2 7368.37 ;  8000 1600 8000 2 7993.61 ;  8500 1600 8500 2 9397.53 ;  9000 1600 9000 2 10743.8 ;  9500 1600 9500 2 12054.9 ;  10000 1600 10000 2 12873.7 ;  10500 1600 10500 2 14042.7 ;  11000 1600 11000 2 15869.1 ;  11500 1600 11500 2 17129.3 ;  12000 1600 12000 2 18447.3 ; ];

FAST433_29_234_1 = [ 2000 1600 2000 1 552.658 ;  2500 1600 2500 1 836.852 ;  3000 1600 3000 1 1205.42 ;  3500 1600 3500 1 1646.19 ;  4000 1600 4000 1 2072.96 ;  4500 1600 4500 1 2736.45 ;  5000 1600 5000 1 3304.14 ;  5500 1600 5500 1 4005.01 ;  6000 1600 6000 1 4627.19 ;  6500 1600 6500 1 5612.13 ;  7000 1600 7000 1 6392.62 ;  7500 1600 7500 1 7553.76 ;  8000 1600 8000 1 8157.03 ;  8500 1600 8500 1 9529.25 ;  9000 1600 9000 1 10659.7 ;  9500 1600 9500 1 11724.7 ;  10000 1600 10000 1 12813.2 ;  10500 1600 10500 1 14589.2 ;  11000 1600 11000 1 15636.9 ;  11500 1600 11500 1 17096.8 ;  12000 1600 12000 1 18070.2 ; ];
FAST433_29_234_2 = [ 2000 1600 2000 2 628.444 ;  2500 1600 2500 2 947.049 ;  3000 1600 3000 2 1389.66 ;  3500 1600 3500 2 1853.02 ;  4000 1600 4000 2 2307.59 ;  4500 1600 4500 2 3000.36 ;  5000 1600 5000 2 3607.59 ;  5500 1600 5500 2 4431.34 ;  6000 1600 6000 2 5395.66 ;  6500 1600 6500 2 6109.88 ;  7000 1600 7000 2 7371.02 ;  7500 1600 7500 2 8625.88 ;  8000 1600 8000 2 9397.42 ;  8500 1600 8500 2 10853.5 ;  9000 1600 9000 2 12072.5 ;  9500 1600 9500 2 13690.8 ;  10000 1600 10000 2 15082.5 ;  10500 1600 10500 2 16183.4 ;  11000 1600 11000 2 18048.5 ;  11500 1600 11500 2 19912.3 ;  12000 1600 12000 2 21314.9 ; ];

FAST323_15_103_1 = [ 2000 1600 2000 1 549.677 ;  2500 1600 2500 1 860.361 ;  3000 1600 3000 1 1137.54 ;  3500 1600 3500 1 1670.49 ;  4000 1600 4000 1 2135.38 ;  4500 1600 4500 1 2557.5 ;  5000 1600 5000 1 3298.75 ;  5500 1600 5500 1 3935.09 ;  6000 1600 6000 1 4502.39 ;  6500 1600 6500 1 5534.01 ;  7000 1600 7000 1 6322.73 ;  7500 1600 7500 1 7039.76 ;  8000 1600 8000 1 8215.29 ;  8500 1600 8500 1 9277.34 ;  9000 1600 9000 1 9949.09 ;  9500 1600 9500 1 11536.5 ;  10000 1600 10000 1 13013 ;  10500 1600 10500 1 13712.2 ;  11000 1600 11000 1 15303.1 ;  11500 1600 11500 1 16854.5 ;  12000 1600 12000 1 17525.8 ; ];
FAST323_15_103_2 = [2000 1600 2000 2 557.841 ;  2500 1600 2500 2 918.585 ;  3000 1600 3000 2 1226.39 ;  3500 1600 3500 2 1666.57 ;  4000 1600 4000 2 2144.76 ;  4500 1600 4500 2 2513.62 ;  5000 1600 5000 2 3268.41 ;  5500 1600 5500 2 3987.39 ;  6000 1600 6000 2 4659.57 ;  6500 1600 6500 2 5489.44 ;  7000 1600 7000 2 6586.02 ;  7500 1600 7500 2 7304.81 ;  8000 1600 8000 2 8204.09 ;  8500 1600 8500 2 9112.43 ;  9000 1600 9000 2 10038.7 ;  9500 1600 9500 2 11968.8 ;  10000 1600 10000 2 13022.2 ;  10500 1600 10500 2 14155.2 ;  11000 1600 11000 2 15226.1 ;  11500 1600 11500 2 17234.2 ;  12000 1600 12000 2 18363.1 ; ];

FAST522_18_99_1 = [ 2000 1600 2000 1 565.803 ;  2500 1600 2500 1 869.638 ;  3000 1600 3000 1 1209.54 ;  3500 1600 3500 1 1681.78 ;  4000 1600 4000 1 2153.04 ;  4500 1600 4500 1 2762.4 ;  5000 1600 5000 1 3376.98 ;  5500 1600 5500 1 4089.59 ;  6000 1600 6000 1 4794.83 ;  6500 1600 6500 1 5751.48 ;  7000 1600 7000 1 6505.01 ;  7500 1600 7500 1 7580.68 ;  8000 1600 8000 1 8625.66 ;  8500 1600 8500 1 9686.32 ;  9000 1600 9000 1 10666.1 ;  9500 1600 9500 1 12238.2 ;  10000 1600 10000 1 13092.4 ;  10500 1600 10500 1 14799.9 ;  11000 1600 11000 1 15920.1 ;  11500 1600 11500 1 18145.1 ;  12000 1600 12000 1 18843.6 ; ];
FAST522_18_99_2 = [2000 1600 2000 2 635.572 ;  2500 1600 2500 2 975.947 ;  3000 1600 3000 2 1334.86 ;  3500 1600 3500 2 1852.12 ;  4000 1600 4000 2 2286.71 ;  4500 1600 4500 2 3029.65 ;  5000 1600 5000 2 3545.66 ;  5500 1600 5500 2 4499.45 ;  6000 1600 6000 2 5103.82 ;  6500 1600 6500 2 6290.29 ;  7000 1600 7000 2 7145.69 ;  7500 1600 7500 2 8387.34 ;  8000 1600 8000 2 9196.95 ;  8500 1600 8500 2 10578.9 ;  9000 1600 9000 2 11583.9 ;  9500 1600 9500 2 13163.8 ;  10000 1600 10000 2 14273.5 ;  10500 1600 10500 2 15987.8 ;  11000 1600 11000 2 17095.2 ;  11500 1600 11500 2 18987.1 ;  12000 1600 12000 2 20263.5 ; ];

FAST423_20_144_1 = [ 2000 1600 2000 1 529.827 ;  2500 1600 2500 1 839.761 ;  3000 1600 3000 1 1199.38 ;  3500 1600 3500 1 1623.94 ;  4000 1600 4000 1 2090.82 ;  4500 1600 4500 1 2641.19 ;  5000 1600 5000 1 3236.4 ;  5500 1600 5500 1 3980.17 ;  6000 1600 6000 1 4542.65 ;  6500 1600 6500 1 5500.52 ;  7000 1600 7000 1 6340.62 ;  7500 1600 7500 1 7322.75 ;  8000 1600 8000 1 8037.16 ;  8500 1600 8500 1 9343.54 ;  9000 1600 9000 1 10239.1 ;  9500 1600 9500 1 11532.4 ;  10000 1600 10000 1 12621.2 ;  10500 1600 10500 1 14259.7 ;  11000 1600 11000 1 15251.1 ;  11500 1600 11500 1 16736.4 ;  12000 1600 12000 1 17609.5 ; ];
FAST423_20_144_2 = [2000 1600 2000 2 583.768 ;  2500 1600 2500 2 936.683 ;  3000 1600 3000 2 1326.92 ;  3500 1600 3500 2 1746.77 ;  4000 1600 4000 2 2170.29 ;  4500 1600 4500 2 2787.16 ;  5000 1600 5000 2 3323.32 ;  5500 1600 5500 2 4131.44 ;  6000 1600 6000 2 4633.4 ;  6500 1600 6500 2 5607.22 ;  7000 1600 7000 2 6561.74 ;  7500 1600 7500 2 7541.2 ;  8000 1600 8000 2 8225.74 ;  8500 1600 8500 2 9718.35 ;  9000 1600 9000 2 10762.5 ;  9500 1600 9500 2 12077 ;  10000 1600 10000 2 12784.9 ;  10500 1600 10500 2 14197.5 ;  11000 1600 11000 2 16094 ;  11500 1600 11500 2 17420.5 ;  12000 1600 12000 2 18356.5 ; ];

STRASSEN_1 = [ 2000 1600 2000 1 546.752 ;  2500 1600 2500 1 846.203 ;  3000 1600 3000 1 1173.05 ;  3500 1600 3500 1 1619.2 ;  4000 1600 4000 1 2070.49 ;  4500 1600 4500 1 2675.57 ;  5000 1600 5000 1 3261.52 ;  5500 1600 5500 1 3972.39 ;  6000 1600 6000 1 4592.23 ;  6500 1600 6500 1 5594.9 ;  7000 1600 7000 1 6361.95 ;  7500 1600 7500 1 7360.11 ;  8000 1600 8000 1 8103.6 ;  8500 1600 8500 1 9466.02 ;  9000 1600 9000 1 10357.9 ;  9500 1600 9500 1 11823.1 ;  10000 1600 10000 1 12702 ;  10500 1600 10500 1 14406.2 ;  11000 1600 11000 1 15540.5 ;  11500 1600 11500 1 17469.1 ;  12000 1600 12000 1 18331 ; ];
STRASSEN_2 = [2000 1600 2000 2 533.087 ;  2500 1600 2500 2 817.014 ;  3000 1600 3000 2 1180.49 ;  3500 1600 3500 2 1658.96 ;  4000 1600 4000 2 2033.36 ;  4500 1600 4500 2 2790.74 ;  5000 1600 5000 2 3370.73 ;  5500 1600 5500 2 4102.37 ;  6000 1600 6000 2 4758.58 ;  6500 1600 6500 2 5730.12 ;  7000 1600 7000 2 6540.14 ;  7500 1600 7500 2 7561.94 ;  8000 1600 8000 2 8254.92 ;  8500 1600 8500 2 9652.83 ;  9000 1600 9000 2 10727 ;  9500 1600 9500 2 12034.6 ;  10000 1600 10000 2 13102.4 ;  10500 1600 10500 2 14865.4 ;  11000 1600 11000 2 15889.7 ;  11500 1600 11500 2 17465 ;  12000 1600 12000 2 18388.5 ; ];

BINI322_1 = [ 2000 1600 2000 1 528.764 ;  2500 1600 2500 1 831.602 ;  3000 1600 3000 1 1137.35 ;  3500 1600 3500 1 1642 ;  4000 1600 4000 1 2060.59 ;  4500 1600 4500 1 2560.12 ;  5000 1600 5000 1 3225.42 ;  5500 1600 5500 1 3877.9 ;  6000 1600 6000 1 4400.76 ;  6500 1600 6500 1 5373.33 ;  7000 1600 7000 1 6278.32 ;  7500 1600 7500 1 6918.79 ;  8000 1600 8000 1 8092.39 ;  8500 1600 8500 1 9085.58 ;  9000 1600 9000 1 9816.36 ;  9500 1600 9500 1 11366.1 ;  10000 1600 10000 1 12755.7 ;  10500 1600 10500 1 13555.2 ;  11000 1600 11000 1 15168.2 ;  11500 1600 11500 1 16695.3 ;  12000 1600 12000 1 17417 ; ];
BINI322_2 = [2000 1600 2000 2 549.992 ;  2500 1600 2500 2 866.17 ;  3000 1600 3000 2 1162.63 ;  3500 1600 3500 2 1602.21 ;  4000 1600 4000 2 2011.02 ;  4500 1600 4500 2 2514.91 ;  5000 1600 5000 2 3195.45 ;  5500 1600 5500 2 3865.91 ;  6000 1600 6000 2 4578.81 ;  6500 1600 6500 2 5283.1 ;  7000 1600 7000 2 6258.54 ;  7500 1600 7500 2 7126.89 ;  8000 1600 8000 2 8029.26 ;  8500 1600 8500 2 8843.59 ;  9000 1600 9000 2 9569.69 ;  9500 1600 9500 2 11585.5 ;  10000 1600 10000 2 12572.5 ;  10500 1600 10500 2 13919.4 ;  11000 1600 11000 2 14982.3 ;  11500 1600 11500 2 16648.1 ;  12000 1600 12000 2 17828.8 ; ];

SCHONHAGE333_21_117_APPROX_1 = [ 2000 1600 2000 1 627.529 ;  2500 1600 2500 1 850.255 ;  3000 1600 3000 1 1216.78 ;  3500 1600 3500 1 1636.09 ;  4000 1600 4000 1 2158.22 ;  4500 1600 4500 1 2672.26 ;  5000 1600 5000 1 3387.87 ;  5500 1600 5500 1 4124.71 ;  6000 1600 6000 1 4790.68 ;  6500 1600 6500 1 5768.2 ;  7000 1600 7000 1 6695.16 ;  7500 1600 7500 1 7569.18 ;  8000 1600 8000 1 8660.98 ;  8500 1600 8500 1 9841.74 ;  9000 1600 9000 1 10881.6 ;  9500 1600 9500 1 12250.4 ;  10000 1600 10000 1 13871.3 ;  10500 1600 10500 1 14818.4 ;  11000 1600 11000 1 16321.8 ;  11500 1600 11500 1 18020.7 ;  12000 1600 12000 1 19298.5 ; ];
SCHONHAGE333_21_117_APPROX_2 = [ 2000 1600 2000 2 621.207 ;  2500 1600 2500 2 1019.91 ;  3000 1600 3000 2 1402.49 ;  3500 1600 3500 2 1924.78 ;  4000 1600 4000 2 2481.74 ;  4500 1600 4500 2 3040.12 ;  5000 1600 5000 2 3912.56 ;  5500 1600 5500 2 4624.83 ;  6000 1600 6000 2 5454.49 ;  6500 1600 6500 2 6375.19 ;  7000 1600 7000 2 7487.81 ;  7500 1600 7500 2 8439.16 ;  8000 1600 8000 2 9612.9 ;  8500 1600 8500 2 10728.7 ;  9000 1600 9000 2 11808.1 ;  9500 1600 9500 2 13637.2 ;  10000 1600 10000 2 14943.3 ;  10500 1600 10500 2 16137 ;  11000 1600 11000 2 17652.9 ;  11500 1600 11500 2 19616.7 ;  12000 1600 12000 2 21049.5 ; ];

SMIRNOV525_40_298_1 = [ 2000 1600 2000 1 535.105 ;  2500 1600 2500 1 792.525 ;  3000 1600 3000 1 1110.94 ;  3500 1600 3500 1 1507.22 ;  4000 1600 4000 1 1949.91 ;  4500 1600 4500 1 2515.45 ;  5000 1600 5000 1 3083.71 ;  5500 1600 5500 1 3726.73 ;  6000 1600 6000 1 4420.37 ;  6500 1600 6500 1 5223.17 ;  7000 1600 7000 1 6018.18 ;  7500 1600 7500 1 6956.18 ;  8000 1600 8000 1 7996.87 ;  8500 1600 8500 1 8928.05 ;  9000 1600 9000 1 9939.76 ;  9500 1600 9500 1 11269.2 ;  10000 1600 10000 1 12248.9 ;  10500 1600 10500 1 13625.5 ;  11000 1600 11000 1 14907.3 ;  11500 1600 11500 1 16622.7 ;  12000 1600 12000 1 17638 ; ];
SMIRNOV525_40_298_2 = [ 2000 1600 2000 2 585.246 ;  2500 1600 2500 2 871.389 ;  3000 1600 3000 2 1182.98 ;  3500 1600 3500 2 1586.13 ;  4000 1600 4000 2 2020.27 ;  4500 1600 4500 2 2582.72 ;  5000 1600 5000 2 3087.26 ;  5500 1600 5500 2 3737.01 ;  6000 1600 6000 2 4377.98 ;  6500 1600 6500 2 5143.62 ;  7000 1600 7000 2 5955.1 ;  7500 1600 7500 2 6856.65 ;  8000 1600 8000 2 7622.5 ;  8500 1600 8500 2 8657.98 ;  9000 1600 9000 2 9541.76 ;  9500 1600 9500 2 10672.7 ;  10000 1600 10000 2 11640.2 ;  10500 1600 10500 2 12901.9 ;  11000 1600 11000 2 13970.9 ;  11500 1600 11500 2 15356 ;  12000 1600 12000 2 16561.4 ; ];


dims = MKL_0(:, 1);
lw = 2;      % LineWidth
msz = 10;       % MarkerSize

width = 8; height = 4;
make_plot_pre(width, height);
plot(dims, perf(MKL_0),  'black*-', ...
     dims, max(perf(FAST424_26_257_1), perf(FAST424_26_257_2)), 'gp--', ...
     dims, max(perf(FAST433_29_234_1), perf(FAST433_29_234_2)), 'bo--', ...
     dims, max(perf(FAST323_15_103_1), perf(FAST323_15_103_2)), 'cs--', ...
     dims, max(perf(FAST423_20_144_1), perf(FAST423_20_144_2)), 'yx--', ...
     dims, max(perf(STRASSEN_1), perf(STRASSEN_2)), 'r^--', ...
     ...%dims, max(perf(SMIRNOV525_40_298_1), perf(SMIRNOV525_40_298_2)), 'mv--', ...
     'LineWidth', lw, 'MarkerSize', msz);
  legend('MKL', '<4,2,4>', '<4,3,3>', '<3,2,3>', '<4,2,3>', ...
     'STRASSEN', 'Location', 'EastOutside');

ylim([20, 28]);
%curtick = 2000:500:12000; set(gca, 'XTickLabel', cellstr(num2str(curtick(:))));
 
title('Sequential performance on N x 1600 x N');
xlabel('dimension (N)');
ylabel('Effective GFLOPS');

out_dir = 'fast-matmul_paper_figs';
out_file = 'edison_outer_seq';
make_plot_post(width, height, out_dir, out_file);
